package com.itheima.demo07;

import java.sql.SQLOutput;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author Zhang_Han
 * @version 1.0
 * @date 2020/7/14 14:08
 */
public class MyThread02 {
    public static void main(String[] args) {
        AtomicInteger ai = new AtomicInteger(10);
        //int getAndSet(int value):   			 以原子方式设置为newValue的值，并返回旧值。
        int andSet = ai.getAndSet(1);
        System.out.println(ai);
        System.out.println(andSet);
    }

    //int addAndGet(int data):以原子方式将输入的数值与实例中的值（AtomicInteger里的value）相加，并返回结果。
    private static void method006(AtomicInteger ai) {
        int i = ai.addAndGet(10);
        System.out.println(i);
        System.out.println(ai);
    }

    //int incrementAndGet(): 以原子方式将当前值加1，注意，这里返回的是自增后的值。
    private static void method005(AtomicInteger ai) {
        int i = ai.incrementAndGet();
        System.out.println(ai);
        System.out.println(i);
    }

    // int getAndIncrement():以原子方式将当前值加1，注意，这里返回的是自增前的值。
    private static void method004(AtomicInteger ai) {
        int i = ai.getAndIncrement();
        System.out.println(ai);
        System.out.println(i);
    }

    // int get():   			 				获取值
    private static void method003(AtomicInteger ai) {
        int i = ai.get();
        System.out.println(i);
    }

    //public AtomicInteger(int initialValue)： 初始化一个指定值的原子型Integer
    private static void method002() {
        AtomicInteger ai = new AtomicInteger(10);
        System.out.println(ai);
    }


    private static void method001() {
        AtomicInteger ai = new AtomicInteger();
        System.out.println(ai);
    }


}
